from apps.users.models import UserProfile
from utils import Json
from datetime import datetime

"""
检测Token是否过期
"""
def check_userToken_timeout(func):

    def check_userToken(request):
        userId = request.POST.get('id')
        token = request.POST.get('token')

        # 判断是否带有token 参数
        if not token:
            return Json.json_error("缺少参数token")
        # 获取当前用户
        user = UserProfile.objects.get(pk = userId)
        if user:
            # 与数据库的token进行比较
            if token != user.token:
                return Json.json_error("token有误！")

            #取出token的过期时间
            timeout = user.time_out
            #当前时间
            now = datetime.now()
            #相差时间 如果大于0 则没有过期 否则已经过期
            day = (timeout-now).days
            if(day>0):
                return  func(request)
            else:
                return Json.json_error("token过期了，请重新登录")
        else:
            return  Json.json_error("该账号尚未注册")
    return check_userToken

"""
检测接口请求是否为POST
"""
def request_method(func):
    def checkPostandGet(request):
        if request.method == 'POST':
           return func(request)
        else:
            return Json.json_error("请求方式错误")
    return checkPostandGet
